package tests;

import java.util.Iterator;

import logica.Bando;
import logica.Barco;
import logica.Juego;
import logica.Jugador;

import org.junit.Test;

import auxiliares.Global;
import excepciones.JuegoException;

public class TestJuego {

    @Test
    public void test() {
        System.out.println("Testeo de Juego");
        String nombre = "Juego1";
        
        Juego juego;
		try {
			Global.getInstance().setProperty(Global.SILVER_RIVER_PATH, System.getProperty("user.home") + Juego.RUTA_JUEGO);
			juego = new Juego(nombre);
			juego.agregarJugador("Maxi", Bando.BANDO_ROJO, "en");
			juego.agregarJugador("Juan", Bando.BANDO_AZUL, "es");
			juego.agregarJugador("Martin", Bando.BANDO_VERDE, "es");
			
			System.out.println("Los jugadores en la partida son:");
			
			Iterator<Jugador> jugadores = juego.getJugadores();
			while(jugadores.hasNext()){
				Jugador jugador = jugadores.next();
				System.out.println("*******************************************");
				System.out.println("Nombre Jugador: " + jugador.getNombre());
				System.out.println("Idioma Jugador: " + jugador.getIdioma());
				System.out.println("Abandono Jugador: " + jugador.getAbandono());
				System.out.println("Bando Jugador: ");
				System.out.println("Nombre Bando: " + jugador.getBando().getNombreBando());
				Iterator<Barco> barcos = jugador.getBando().getBarcos();
				System.out.println("Barcos del Bando: ");
				while(barcos.hasNext()){
					Barco barco = barcos.next();
					System.out.println("========================================");
					System.out.println("Nombre del barco : " + barco.getNombre());
					System.out.println("Vida del barco : " + barco.getVida());
					System.out.println("Blindaje del barco : " + barco.getBlindajeActual());
					System.out.println("Velocidad del barco : " + barco.getVelocidadActual());
				}
			}
			juego.setIniciado(true);
			juego.abandonarPartida(juego.getJugador("Maxi").getBando().getNombreBando());
			System.out.println("Abandona partida: " + juego.getJugador("Maxi").getAbandono());
			
			
		} catch (JuegoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }

}
